From version 5.6.3.x onwards DicomObjects, including this version, has used a new model for Codec interfacing. This is only used by those implementing their own custom codecs, and so does not affect the majority of customers, but for the benefit of those wishing to write/interface their own codecs, it is documented here.
The main difference is that a Codec "factory" is now created and used for each transfer syntax, allowing an instance of an appropriate Codec object (supporting ICompressor or IDecompressor) to be created and used when necessary. This object is held alongside the associated pixel data, and allows "state" to be maintained between calls, which is important for progressive decompression.
To use this interface:
The addition of progressive decoding has added some complexity to the IDecompressor interface, but this has been avoided for most users by addition of the SimpleCodec Class, which includes implementations of most of the members of both ICompressor and IDecompressor, leaving only the unavoidable Compress and Decompress methods. It is still necessary to implement and register an associated CodecFactory to reference the new Codec, which should return and instance of the SimpleCodec derived class for one or both of the Compressor and Decompressor methods.